<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DynamicWindowApproach: CDynamicWindowApproach类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">DynamicWindowApproach
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.3 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">类</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pub-attribs">Public 属性</a> &#124;
<a href="class_c_dynamic_window_approach-members.html">所有成员列表</a>  </div>
  <div class="headertitle"><div class="title">CDynamicWindowApproach类 参考</div></div>
</div><!--header-->
<div class="contents">

<p>动态窗口法类  
 <a href="class_c_dynamic_window_approach.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="cdynamicwindowapproach_8h_source.html">cdynamicwindowapproach.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
类</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_dynamic_window_approach_1_1_s_evaluation_parameter.html">SEvaluationParameter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">评估函数结构体  <a href="struct_c_dynamic_window_approach_1_1_s_evaluation_parameter.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a33abfe87f034f642736cc5770fb0adc3"><td class="memItemLeft" align="right" valign="top"><a id="a33abfe87f034f642736cc5770fb0adc3" name="a33abfe87f034f642736cc5770fb0adc3"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>CDynamicWindowApproach</b> (const <a class="el" href="struct_s_waypoint.html">SWaypoint</a> &amp;goal, const <a class="el" href="struct_s_waypoint.html">SWaypoint</a> &amp;startPos, <a class="el" href="struct_s_parameter_of_physical_constraint.html">SParameterOfPhysicalConstraint</a> *phyParameter=nullptr, <a class="el" href="struct_s_limit_of_physical_constraint.html">SLimitOfPhysicalConstraint</a> *limit=nullptr, int wcount=30, double samplingRate=0.1, double samplingVelocity=0.01, double samplingAngularVelocity=PI/180)</td></tr>
<tr class="separator:a33abfe87f034f642736cc5770fb0adc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb8146b04d30adc8d755eec76e3f5986"><td class="memItemLeft" align="right" valign="top"><a id="adb8146b04d30adc8d755eec76e3f5986" name="adb8146b04d30adc8d755eec76e3f5986"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>CDynamicWindowApproach</b> (const double &amp;lngOfGoal, const double &amp;latOfGoal, const double &amp;lngOfStart, const double &amp;latOfStart, <a class="el" href="struct_s_parameter_of_physical_constraint.html">SParameterOfPhysicalConstraint</a> *phyParameter=nullptr, <a class="el" href="struct_s_limit_of_physical_constraint.html">SLimitOfPhysicalConstraint</a> *limit=nullptr, int wcount=30, double samplingRate=0.1, double samplingVelocity=0.01, double samplingAngularVelocity=PI/180)</td></tr>
<tr class="separator:adb8146b04d30adc8d755eec76e3f5986"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2044827ec58011512f129d147681d1a1"><td class="memItemLeft" align="right" valign="top">vector&lt; <a class="el" href="struct_s_parameter_of_window.html">SParameterOfWindow</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_dynamic_window_approach.html#a2044827ec58011512f129d147681d1a1">PlanPath</a> (vector&lt; pair&lt; double, double &gt; &gt; &amp;waypoints)</td></tr>
<tr class="memdesc:a2044827ec58011512f129d147681d1a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">执行动态窗口法规划路径  <a href="class_c_dynamic_window_approach.html#a2044827ec58011512f129d147681d1a1">更多...</a><br /></td></tr>
<tr class="separator:a2044827ec58011512f129d147681d1a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a837f39d83ef5653fe72fa124f6b4b4c9"><td class="memItemLeft" align="right" valign="top"><a id="a837f39d83ef5653fe72fa124f6b4b4c9" name="a837f39d83ef5653fe72fa124f6b4b4c9"></a>
vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>DynamicWindowApproch</b> (<a class="el" href="struct_s_parameter_of_window.html">SParameterOfWindow</a> currentState, vector&lt; pair&lt; double, double &gt; &gt; &amp;obstacles, vector&lt; pair&lt; double, double &gt; &gt; &amp;waypoints)</td></tr>
<tr class="separator:a837f39d83ef5653fe72fa124f6b4b4c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae659051cf47f859b8da47a228a6783f7"><td class="memItemLeft" align="right" valign="top">vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_dynamic_window_approach.html#ae659051cf47f859b8da47a228a6783f7">CreateSolutionSpace</a> (<a class="el" href="struct_s_parameter_of_physical_constraint.html">SParameterOfPhysicalConstraint</a> *phyParameter)</td></tr>
<tr class="memdesc:ae659051cf47f859b8da47a228a6783f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">计算速度u/v与角速度r形成的解空间  <a href="class_c_dynamic_window_approach.html#ae659051cf47f859b8da47a228a6783f7">更多...</a><br /></td></tr>
<tr class="separator:ae659051cf47f859b8da47a228a6783f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5070c22f0926a1dcf6d9d89b8be583a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_s_parameter_of_window.html">SParameterOfWindow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_dynamic_window_approach.html#ac5070c22f0926a1dcf6d9d89b8be583a">CalculateNextWindowParameter</a> (const <a class="el" href="struct_s_parameter_of_window.html">SParameterOfWindow</a> currentWindow, const double u, const double v, const double r)</td></tr>
<tr class="memdesc:ac5070c22f0926a1dcf6d9d89b8be583a"><td class="mdescLeft">&#160;</td><td class="mdescRight">根据给定的解（ u/v/r）生成下一个动态窗口  <a href="class_c_dynamic_window_approach.html#ac5070c22f0926a1dcf6d9d89b8be583a">更多...</a><br /></td></tr>
<tr class="separator:ac5070c22f0926a1dcf6d9d89b8be583a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a190a0499428ba167bfb2f5635a5c0bb4"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_dynamic_window_approach.html#a190a0499428ba167bfb2f5635a5c0bb4">CalculateDisOfObstacle</a> (double x, double y, const vector&lt; pair&lt; double, double &gt; &gt; &amp;obstacles)</td></tr>
<tr class="memdesc:a190a0499428ba167bfb2f5635a5c0bb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">计算（x,y）与障碍物之间的最短距离  <a href="class_c_dynamic_window_approach.html#a190a0499428ba167bfb2f5635a5c0bb4">更多...</a><br /></td></tr>
<tr class="separator:a190a0499428ba167bfb2f5635a5c0bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28f206ef92bd11edf639011f82a6361b"><td class="memItemLeft" align="right" valign="top"><a id="a28f206ef92bd11edf639011f82a6361b" name="a28f206ef92bd11edf639011f82a6361b"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>CalculateDisOfTarget</b> (double x, double y, const vector&lt; pair&lt; double, double &gt; &gt; &amp;waypoints)</td></tr>
<tr class="separator:a28f206ef92bd11edf639011f82a6361b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af75d631080d305e281d531e759010a5d"><td class="memItemLeft" align="right" valign="top">vector&lt; <a class="el" href="struct_s_parameter_of_window.html">SParameterOfWindow</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_dynamic_window_approach.html#af75d631080d305e281d531e759010a5d">GenerateTraj</a> (const <a class="el" href="struct_s_parameter_of_window.html">SParameterOfWindow</a> &amp;currentWindow, const double u, const double v, const double r)</td></tr>
<tr class="memdesc:af75d631080d305e281d531e759010a5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">预测轨迹点  <a href="class_c_dynamic_window_approach.html#af75d631080d305e281d531e759010a5d">更多...</a><br /></td></tr>
<tr class="separator:af75d631080d305e281d531e759010a5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ce8fe6a4584ed4b9a1fee9ef42f5972"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_dynamic_window_approach.html#a4ce8fe6a4584ed4b9a1fee9ef42f5972">CalculateBreakingDist</a> (double u, double v)</td></tr>
<tr class="memdesc:a4ce8fe6a4584ed4b9a1fee9ef42f5972"><td class="mdescLeft">&#160;</td><td class="mdescRight">计算制动距离  <a href="class_c_dynamic_window_approach.html#a4ce8fe6a4584ed4b9a1fee9ef42f5972">更多...</a><br /></td></tr>
<tr class="separator:a4ce8fe6a4584ed4b9a1fee9ef42f5972"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public 属性</h2></td></tr>
<tr class="memitem:a7a719da34ea2312724788a8931b03e02"><td class="memItemLeft" align="right" valign="top"><a id="a7a719da34ea2312724788a8931b03e02" name="a7a719da34ea2312724788a8931b03e02"></a>
<a class="el" href="struct_s_parameter_of_physical_constraint.html">SParameterOfPhysicalConstraint</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>m_phyParameter</b></td></tr>
<tr class="memdesc:a7a719da34ea2312724788a8931b03e02"><td class="mdescLeft">&#160;</td><td class="mdescRight">状态变量 <br /></td></tr>
<tr class="separator:a7a719da34ea2312724788a8931b03e02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2afa7610202a6df4c301c43083a523e"><td class="memItemLeft" align="right" valign="top"><a id="aa2afa7610202a6df4c301c43083a523e" name="aa2afa7610202a6df4c301c43083a523e"></a>
<a class="el" href="struct_s_limit_of_physical_constraint.html">SLimitOfPhysicalConstraint</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>m_limit</b></td></tr>
<tr class="memdesc:aa2afa7610202a6df4c301c43083a523e"><td class="mdescLeft">&#160;</td><td class="mdescRight">状态上下限 <br /></td></tr>
<tr class="separator:aa2afa7610202a6df4c301c43083a523e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f1ef69f2989fe91be174f915b24f7e4"><td class="memItemLeft" align="right" valign="top"><a id="a3f1ef69f2989fe91be174f915b24f7e4" name="a3f1ef69f2989fe91be174f915b24f7e4"></a>
<a class="el" href="struct_s_waypoint.html">SWaypoint</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_goal</b></td></tr>
<tr class="memdesc:a3f1ef69f2989fe91be174f915b24f7e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">终点的经纬度 <br /></td></tr>
<tr class="separator:a3f1ef69f2989fe91be174f915b24f7e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2b7fc62cbba56882be4f59980b11d88"><td class="memItemLeft" align="right" valign="top"><a id="ae2b7fc62cbba56882be4f59980b11d88" name="ae2b7fc62cbba56882be4f59980b11d88"></a>
<a class="el" href="struct_s_waypoint.html">SWaypoint</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_startPos</b></td></tr>
<tr class="memdesc:ae2b7fc62cbba56882be4f59980b11d88"><td class="mdescLeft">&#160;</td><td class="mdescRight">起点的经纬度 <br /></td></tr>
<tr class="separator:ae2b7fc62cbba56882be4f59980b11d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad897cad46e029468f711d37d2165dd85"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_dynamic_window_approach.html#ad897cad46e029468f711d37d2165dd85">m_x</a></td></tr>
<tr class="memdesc:ad897cad46e029468f711d37d2165dd85"><td class="mdescLeft">&#160;</td><td class="mdescRight">当前x方向坐标  <a href="class_c_dynamic_window_approach.html#ad897cad46e029468f711d37d2165dd85">更多...</a><br /></td></tr>
<tr class="separator:ad897cad46e029468f711d37d2165dd85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2f1a291134a9947e3d48ef461361d1e"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_dynamic_window_approach.html#ad2f1a291134a9947e3d48ef461361d1e">m_y</a></td></tr>
<tr class="memdesc:ad2f1a291134a9947e3d48ef461361d1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">当前y方向坐标  <a href="class_c_dynamic_window_approach.html#ad2f1a291134a9947e3d48ef461361d1e">更多...</a><br /></td></tr>
<tr class="separator:ad2f1a291134a9947e3d48ef461361d1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af17ef50057cefa1ce3596afc0074e52a"><td class="memItemLeft" align="right" valign="top"><a id="af17ef50057cefa1ce3596afc0074e52a" name="af17ef50057cefa1ce3596afc0074e52a"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>m_wcount</b></td></tr>
<tr class="memdesc:af17ef50057cefa1ce3596afc0074e52a"><td class="mdescLeft">&#160;</td><td class="mdescRight">一次规划的窗口数 <br /></td></tr>
<tr class="separator:af17ef50057cefa1ce3596afc0074e52a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1972d45b47f5d852c7810233ef5fcd8"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_dynamic_window_approach.html#ac1972d45b47f5d852c7810233ef5fcd8">m_samplingRate</a></td></tr>
<tr class="memdesc:ac1972d45b47f5d852c7810233ef5fcd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">采样时间间隔  <a href="class_c_dynamic_window_approach.html#ac1972d45b47f5d852c7810233ef5fcd8">更多...</a><br /></td></tr>
<tr class="separator:ac1972d45b47f5d852c7810233ef5fcd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a655ba5aad7fd7cdba839b7845cd46650"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_dynamic_window_approach.html#a655ba5aad7fd7cdba839b7845cd46650">m_samplingVelocity</a></td></tr>
<tr class="memdesc:a655ba5aad7fd7cdba839b7845cd46650"><td class="mdescLeft">&#160;</td><td class="mdescRight">速度采样增量  <a href="class_c_dynamic_window_approach.html#a655ba5aad7fd7cdba839b7845cd46650">更多...</a><br /></td></tr>
<tr class="separator:a655ba5aad7fd7cdba839b7845cd46650"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9da95703f4b5c0e61d7c9bcd8d64117c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_dynamic_window_approach.html#a9da95703f4b5c0e61d7c9bcd8d64117c">m_samplingAngularVelocity</a></td></tr>
<tr class="memdesc:a9da95703f4b5c0e61d7c9bcd8d64117c"><td class="mdescLeft">&#160;</td><td class="mdescRight">角速度采样增量  <a href="class_c_dynamic_window_approach.html#a9da95703f4b5c0e61d7c9bcd8d64117c">更多...</a><br /></td></tr>
<tr class="separator:a9da95703f4b5c0e61d7c9bcd8d64117c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p >动态窗口法类 </p>
<p >实现动态窗口算法 </p>
</div><h2 class="groupheader">成员函数说明</h2>
<a id="a4ce8fe6a4584ed4b9a1fee9ef42f5972" name="a4ce8fe6a4584ed4b9a1fee9ef42f5972"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ce8fe6a4584ed4b9a1fee9ef42f5972">&#9670;&nbsp;</a></span>CalculateBreakingDist()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double CDynamicWindowApproach::CalculateBreakingDist </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>计算制动距离 </p>
<p >横向和纵向分别按照最大减速度进行减速产生的制动距离（停止距离） </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">u</td><td>当前横向速度 </td></tr>
    <tr><td class="paramname">v</td><td>当前纵向速度 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>制动距离 </dd></dl>

</div>
</div>
<a id="a190a0499428ba167bfb2f5635a5c0bb4" name="a190a0499428ba167bfb2f5635a5c0bb4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a190a0499428ba167bfb2f5635a5c0bb4">&#9670;&nbsp;</a></span>CalculateDisOfObstacle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double CDynamicWindowApproach::CalculateDisOfObstacle </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const vector&lt; pair&lt; double, double &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>obstacles</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>计算（x,y）与障碍物之间的最短距离 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>当前横向方向的坐标 </td></tr>
    <tr><td class="paramname">y</td><td>当前纵向方向的坐标 </td></tr>
    <tr><td class="paramname">obstacles</td><td>vector数组形式存放雷达探测到的所有障碍物距离当前位置的相对距离，以(x,y)形式存放至数组 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>最短距离 </dd></dl>

</div>
</div>
<a id="ac5070c22f0926a1dcf6d9d89b8be583a" name="ac5070c22f0926a1dcf6d9d89b8be583a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5070c22f0926a1dcf6d9d89b8be583a">&#9670;&nbsp;</a></span>CalculateNextWindowParameter()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="struct_s_parameter_of_window.html">SParameterOfWindow</a> CDynamicWindowApproach::CalculateNextWindowParameter </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="struct_s_parameter_of_window.html">SParameterOfWindow</a>&#160;</td>
          <td class="paramname"><em>currentWindow</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>r</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>根据给定的解（ u/v/r）生成下一个动态窗口 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">currentWindow</td><td>当前物理量信息 </td></tr>
    <tr><td class="paramname">u</td><td>下一窗口的横向速度 </td></tr>
    <tr><td class="paramname">v</td><td>下一窗口的纵向速度 </td></tr>
    <tr><td class="paramname">r</td><td>下一窗口的角速度 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>下一个窗口信息 </dd></dl>

</div>
</div>
<a id="ae659051cf47f859b8da47a228a6783f7" name="ae659051cf47f859b8da47a228a6783f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae659051cf47f859b8da47a228a6783f7">&#9670;&nbsp;</a></span>CreateSolutionSpace()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vector&lt; double &gt; CDynamicWindowApproach::CreateSolutionSpace </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_parameter_of_physical_constraint.html">SParameterOfPhysicalConstraint</a> *&#160;</td>
          <td class="paramname"><em>phyParameter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>计算速度u/v与角速度r形成的解空间 </p>
<p >依据最大加速度、最大减速度可以分别计算速度的理论上下限， 但是必须符合速度的物理约束限制：对于下限，两者取最大；对于上限，两者取最小 </p><dl class="section return"><dt>返回</dt><dd>vector数组，其中0,1元素表示速度u的下限和上限； 2和3元素表示速度v的下限和上限； 4和5元素表示角速度r的下限和上限 </dd></dl>

</div>
</div>
<a id="af75d631080d305e281d531e759010a5d" name="af75d631080d305e281d531e759010a5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af75d631080d305e281d531e759010a5d">&#9670;&nbsp;</a></span>GenerateTraj()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vector&lt; <a class="el" href="struct_s_parameter_of_window.html">SParameterOfWindow</a> &gt; CDynamicWindowApproach::GenerateTraj </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="struct_s_parameter_of_window.html">SParameterOfWindow</a> &amp;&#160;</td>
          <td class="paramname"><em>currentWindow</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>u</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>r</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>预测轨迹点 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">currentWindow</td><td>当前物理量信息 </td></tr>
    <tr><td class="paramname">u</td><td>预测时间内的横向速度 </td></tr>
    <tr><td class="paramname">v</td><td>预测时间内的纵向速度 </td></tr>
    <tr><td class="paramname">r</td><td>预测时间内的角速度 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>预测时间内的轨迹点 </dd></dl>

</div>
</div>
<a id="a2044827ec58011512f129d147681d1a1" name="a2044827ec58011512f129d147681d1a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2044827ec58011512f129d147681d1a1">&#9670;&nbsp;</a></span>PlanPath()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vector&lt; <a class="el" href="struct_s_parameter_of_window.html">SParameterOfWindow</a> &gt; CDynamicWindowApproach::PlanPath </td>
          <td>(</td>
          <td class="paramtype">vector&lt; pair&lt; double, double &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>waypoints</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>执行动态窗口法规划路径 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">waypoints</td><td>航点经纬度</td></tr>
  </table>
  </dd>
</dl>
<p>程序一开始先在地图上点击几个航迹点以形成粗略的航线，按照起点到终点的顺序依次存放 </p>

</div>
</div>
<h2 class="groupheader">类成员变量说明</h2>
<a id="a9da95703f4b5c0e61d7c9bcd8d64117c" name="a9da95703f4b5c0e61d7c9bcd8d64117c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9da95703f4b5c0e61d7c9bcd8d64117c">&#9670;&nbsp;</a></span>m_samplingAngularVelocity</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double CDynamicWindowApproach::m_samplingAngularVelocity</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>角速度采样增量 </p>
<p >默认1°（pi/180） </p>

</div>
</div>
<a id="ac1972d45b47f5d852c7810233ef5fcd8" name="ac1972d45b47f5d852c7810233ef5fcd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1972d45b47f5d852c7810233ef5fcd8">&#9670;&nbsp;</a></span>m_samplingRate</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double CDynamicWindowApproach::m_samplingRate</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>采样时间间隔 </p>
<p >在该时间内，认为小艇处于匀速直线运动, m_wcount*m_samplingRate=预测时间，默认预测未来3s时间的轨迹 </p>

</div>
</div>
<a id="a655ba5aad7fd7cdba839b7845cd46650" name="a655ba5aad7fd7cdba839b7845cd46650"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a655ba5aad7fd7cdba839b7845cd46650">&#9670;&nbsp;</a></span>m_samplingVelocity</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double CDynamicWindowApproach::m_samplingVelocity</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>速度采样增量 </p>
<p >默认0.01（u、v均适用） </p>

</div>
</div>
<a id="ad897cad46e029468f711d37d2165dd85" name="ad897cad46e029468f711d37d2165dd85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad897cad46e029468f711d37d2165dd85">&#9670;&nbsp;</a></span>m_x</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double CDynamicWindowApproach::m_x</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>当前x方向坐标 </p>
<p >基于世界坐标系 </p>

</div>
</div>
<a id="ad2f1a291134a9947e3d48ef461361d1e" name="ad2f1a291134a9947e3d48ef461361d1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2f1a291134a9947e3d48ef461361d1e">&#9670;&nbsp;</a></span>m_y</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double CDynamicWindowApproach::m_y</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>当前y方向坐标 </p>
<p >基于世界坐标系 </p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>D:/QtProject/DynamicWindowApproach/<a class="el" href="cdynamicwindowapproach_8h_source.html">cdynamicwindowapproach.h</a></li>
<li>D:/QtProject/DynamicWindowApproach/cdynamicwindowapproach.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>
